﻿using HMS.Contracts.Models;

namespace HMS.TenantServer.Abstractions;

public interface ITenantManager
{
    Task<string> GetTenantSchemaAsync(string tenantId, CancellationToken cancellationToken = default);

    Task<TenantModel> LoginAsync(TenantLoginModel model, CancellationToken cancellationToken = default);

    Task<TenantModel> RegisterAsync(string name, CancellationToken cancellationToken = default);

    Task<UserModel> RegisterUserAsync(string name, string tenantId, CancellationToken cancellationToken = default);

    Task<IEnumerable<UserModel>> GetUsersAsync(string tenantId, CancellationToken cancellationToken = default);

    Task<IEnumerable<TenantModel>> GetTenantsAsync();
}